/**
 * Created by PanJiaChen on 16/11/18.
 */

/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

// 账号
export const validateAccount = (rule, value, callback) => {
  const reg_account = /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/

  if (!reg_account.test(value)) {
    callback(new Error('账号需在5-15位之间，以字母开头'))
  } else {
    callback()
  }
}

// 密码
export const validatePassword = (rule, value, callback) => {
  const reg_password = /(?=.*\d)(?=.*[a-zA-Z])[^\u4e00-\u9fa5\s]{8,16}$/

  if (!reg_password.test(value)) {
    callback(new Error('8-16位且至少包含1个字母，1个数字'))
  } else {
    callback()
  }
}

// 手机
export const validatePhone = (rule, value, callback) => {
  const reg_phone = /1[3-9]\d{9}$/

  if (!reg_phone.test(value)) {
    callback(new Error('手机号码格式不正确'))
  } else {
    callback()
  }
}

// 邮箱
export const validateMail = (rule, value, callback) => {
  const reg_mail = /^\w+((.\w+)|(-\w+))@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/

  if (!reg_mail.test(value)) {
    callback(new Error('邮箱格式不正确'))
  } else {
    callback()
  }
}

// 昵称
export const validateNickName = (rule, value, callback) => {
  const reg_nickname = /^[a-zA-Z0-9_\u4E00-\u9FA5]{2,16}$/

  if (!reg_nickname.test(value)) {
    callback(new Error('昵称支持2-16位英文、数字、中文与下划线'))
  } else {
    callback()
  }
}

// 工号
export const validateStaffNum = (rule, value, callback) => {
  const reg = /Y\d{6}$/

  if (reg.test(value)) {
    callback()
  } else {
    callback(new Error('员工工号必须为大写字母Y+6位数字'))
  }
}

/* 文件类型*/
export function validateFileType(str, typeArr) {
  const type = str.substr(str.lastIndexOf('.') + 1, str.length).toLowerCase()
  if (typeArr.indexOf(type) >= 0) {
    return true
  } else {
    return false
  }
}
